#pragma once
#include "Graphics.h"
#include "Input.h"
#include "Network.h"
#include "Sound.h"
#include "SceneGraph.h"
#include "Scene.h"
#include "IComponent.h"

class Oak : virtual public IComponent
{
public:
	virtual void Initialize(HWND WindowHandle = nullptr, HINSTANCE hInstance = nullptr, ID3D11Device* Device = nullptr, ID3D11DeviceContext* DeviceContext = nullptr);
	virtual void Update(int DeltaTime);
	virtual void Shutdown();

private:
	void Render();

	Graphics	Graphics;
	Input		Input;
	Network		Network;
	Sound		Sound;
	SceneGraph	SceneGraph;
	Scene		Scene;
	Camera		Camera;

	HWND MainWindowHandle;

	float FPS;
	int DeltaTime;
};